package controladores;

import java.io.Serializable;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import negocio.UsuarioBI;

/**
 *
 * @author Edgar
 */
@ManagedBean(name = "login")
@SessionScoped
public class LoginCtrl implements Serializable{
    private String usuario;
    private String contrasena;
    private Boolean logeado;
    @Inject
    private UsuarioBI usuarioBI;
    
    public void entrar()throws Exception{
        try{
            Boolean resLogin = usuarioBI.verificarLogin(usuario, contrasena);
            if(resLogin){
                this.logeado = true;
                FacesContext.getCurrentInstance().getExternalContext().redirect("/PRP/faces/bienvenida.xhtml");
            }else{
                this.logeado = false;
                FacesMessage mes = new FacesMessage(FacesMessage.SEVERITY_ERROR,"Error", "Usuario y/o contraseña incorrectos");
                FacesContext.getCurrentInstance().addMessage(null, mes);
            }
        }catch(Exception e){
            FacesMessage mes = new FacesMessage(FacesMessage.SEVERITY_ERROR,"Error", e.getMessage());
            FacesContext.getCurrentInstance().addMessage(null, mes);
        }
    }
    
    public void validaLogin() throws Exception{
        Boolean resLogin = usuarioBI.verificarLogin(getUsuario(), getContrasena());
        this.logeado = resLogin;
        if(!resLogin){
            FacesMessage mes = new FacesMessage(FacesMessage.SEVERITY_ERROR,"Error", "El usuario no se encuentra logeado");
            FacesContext.getCurrentInstance().addMessage(null, mes);
            FacesContext.getCurrentInstance().getExternalContext().redirect("/PRP/faces/index.xhtml");
        }
    }
    
    public void logout() throws Exception{
        usuario = null;
        contrasena = null;
        this.logeado=false;
        FacesContext.getCurrentInstance().getExternalContext().redirect("/PRP/faces/index.xhtml");
    }
    
    public void eliminaDatosLogin(){
        usuario = null;
        contrasena = null;
        this.logeado=false;
    }
    
    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public String getContrasena() {
        return contrasena;
    }

    public void setContrasena(String contrasena) {
        this.contrasena = contrasena;
    }

    public Boolean getLogeado() {
        return logeado;
    }

    public void setLogeado(Boolean logeado) {
        this.logeado = logeado;
    }
}
